package com.ia.bikerecife.client;

import java.util.ArrayList;

import com.ia.bikerecife.core.ProgramD;
import com.ia.bikerecife.database.Banco;

public class ClientResponder {

    public String ask(String perguntaAndroid) {

        try {
            ProgramD d = new ProgramD();
            String[] valuesAndroid = perguntaAndroid.split(":");
            String perguntaAIML = valuesAndroid[0];

            String lat = null;
            String lng = null;

            if (valuesAndroid.length > 1) {
                String latLong = valuesAndroid[1];
                String[] valuesLatLong = latLong.split(";");
                lat = valuesLatLong[0];
                lng = valuesLatLong[1];
            }

            String template = d.askMe(perguntaAIML);
            System.out.println("template: " + template);

            if (template.contains("SELECT")) {
                String query = template;

                if (lat != null && lng != null) {
                    query = String.format(query, lat, lng);
                }

                // parametros para o retorno da funcao
                String[] params = new String[] { "endereco", "latitude", "longitude" };
                Banco banco = new Banco();

                // passando a resposta do ProgramD para o banco
                ArrayList<String> list = banco.consultarPerguntas(query, params);

                // print
                String resposta = "";
                if (list.size() > 0) {
                    for (int i = 0; i < list.size(); i++) {

                        if (i <= 1) {
                            resposta += list.get(i) + ";";
                        }
                        else {
                            resposta += list.get(i);
                        }
                    }
                }

                return resposta;
            }
            else {
                return template;
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
